#ifndef __DDR_SCAN_OFFLINE_SPRD_R3P0_H__
#define __DDR_SCAN_OFFLINE_SPRD_R3P0_H__

#define PROJECT_NAME "SHARKLE"

typedef enum
{
	BIST_DS_34OHM = 0,
	BIST_DS_40OHM = 1,
	BIST_DS_48OHM = 2,
	BIST_DS_60OHM = 3,
	BIST_DS_80OHM = 4
}BIST_DS_E;

// 5/10/15/20/25/30  => 240/120/80/60/48/40
typedef enum __DDR_DRV_STRENGTH {
	DRV_40__OHM = 30,
	DRV_48__OHM = 25,
	DRV_60__OHM = 20,
	DRV_80__OHM = 15,
	DRV_120__OHM = 10,
	DRV_240__OHM = 5,
}DDR_DRV_STRENGTH;

typedef enum __PROJECT_ID {
	PROJECT_SHARK	= 0x28300000,
	PROJECT_TSHARK	= 0x28400000,
	PROJECT_PIKE	= 0x28500000,
	PROJECT_PIKEL	= 0x28600000,
	PROJECT_WHALE	= 0x28700000,
	PROJECT_SHARKL2	= 0x28800000,
	PROJECT_SHARKLJ1= 0x28900000,
	PROJECT_PIKE2	= 0x28A00000,
	PROJECT_SHARKLE	= 0x28B00000,
	PROJECT_UNKNOWN	= 0xffffffff,
}PROJECT_ID;

typedef struct __PROJECT_INFO {
	PROJECT_ID id;
	char name[32];
}PROJECT_INFO;

typedef enum __SCAN_DDR_TYPE_ID {
	LPDDR2=0x22222222,
	LPDDR3=0x33333333,
	DDR_UNKNOWN=0xffffffff
}SCAN_DDR_TYPE_ID;

#define SCAN_ROW1_SYMBOL 0xc1000000
#define SCAN_ROW2_SYMBOL 0xc2000000
#define SCAN_ROW3_SYMBOL 0xc3000000
#define SCAN_ROW4_SYMBOL 0xc4000000
#define SCAN_ROW5_SYMBOL 0xc5000000
#define SCAN_COLUMN1_SYMBOL 0xb1000000
#define SCAN_COLUMN2_SYMBOL 0xb2000000
#define SCAN_COLUMN3_SYMBOL 0xb3000000
#define SCAN_COLUMN4_SYMBOL 0xb4000000

typedef enum __SCAN_IMTE_CODE {
	SCAN_ITEM_BYTE=0,
	SCAN_ITEM_BIT,
	SCAN_ITEM_CS,
	SCAN_ITEM_DRV,
	SCAN_ITEM_AC_DL,
	SCAN_ITEM_WR_DL,
	SCAN_ITEM_RD_PST_DL,
	SCAN_ITEM_RD_NEG_DL
}SCAN_ITEM_CODE;

#define SCAN_ITEM_OFFSET	8

#endif
